package com.zyl.blog.common.utils;

import com.zyl.blog.common.enums.StatusCode;

/**
 * @version v1.0
 * @ProjectName: Personal_Blog
 * @Package: com.zyl.common.utils
 * @ClassName: CodeExplainUtil
 * @Description: 状态码解释工具类 - 快速定位问题
 * @Author FinalFantasy
 * @Date 2025/2/14-13:40
 */
public class CodeExplainUtil {
    /**
     * 根据状态码解析模块归属
     */
    public static String getModule(int code) {
        int prefix = code / 1000;
        return switch (prefix) {
            case 10 -> "参数校验";
            case 20 -> "鉴权中心";
            case 40 -> "用户模块";
            case 41 -> "车间模块";
            case 42 -> "报警模块";
            default -> "系统通用";
        };
    }

    /**
     * 生成标准错误格式
     */
    public static String format(StatusCode statusCode) {
        return String.format("[%s] %s (%d)",
                getModule(statusCode.getCode()),
                statusCode.getMessage(),
                statusCode.getCode()
        );
    }
}